#ifndef NANE_WIN32WINDOW_H
#   define  NANE_WIN32WINDOW_H

#   include "nane/WindowSystem/IWindowSystem.h"
#   include "nane/core/WinAPI/winapi.h"

namespace nane
{
    class Win32Window
        : public IWindow
    {
    public:
        Win32Window( HWND _hWnd );
        ~Win32Window();

        LRESULT WindowProc( UINT _msg, WPARAM _wParam, LPARAM _lParam );

    public:
        OSHandle GetOSHandle();
        void Show();
        void UpdateMessages();
        void SetMessageHandler( IWindowMessageHandler* _handler );

    private:
        HWND m_hWnd;
        IWindowMessageHandler* m_handler;
    };
}   // namespace nane

#endif // NANE_WIN32WINDOW_H
